/*
This file is part of La Linea.

La Linea is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

La Linea is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with La Linea.  If not, see <http://www.gnu.org/licenses/>.
*/

#pragma once
#ifndef VECTOR2F_H
#define VECTOR2F_H

#include "globals.h"

#include <cmath>

class Vector2f
{
public:
	GLfloat x;
	GLfloat y;

	Vector2f(void);
	Vector2f(GLfloat x, GLfloat y);
	Vector2f(const Vector2f &v);

	Vector2f& operator= (const Vector2f& v);
	Vector2f& operator+= (const Vector2f& v);
	Vector2f operator+ (const Vector2f& v);
	Vector2f& operator-= (const Vector2f& v);
	Vector2f operator- (const Vector2f& v);
	Vector2f& operator*= (const Vector2f& v);
	Vector2f operator* (const Vector2f& v);
	Vector2f& operator/= (const Vector2f& v);
	Vector2f operator/ (const Vector2f& v);

	double length() const;
	Vector2f & normalize();
};


Vector2f operator*(const GLfloat a, const Vector2f& v);
Vector2f operator/(const Vector2f& v,const GLfloat a);

#endif
